List Provider - pseudo code

List Provider - pseudo code

The code below is a pseudo code for the List Provider, which incorporates some of the tips and recommendations from the List Provider overview topic.

Use the pseudo code below as a starting point for a List Provider plugin.

PseudoListProvider

package com.oracle.determinations.interview.engine.userplugins;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.oracle.determinations.engine.Attribute;
import com.oracle.determinations.interview.engine.InterviewSession;
import com.oracle.determinations.interview.engine.plugins.InterviewSessionPlugin;
import com.oracle.determinations.interview.engine.plugins.InterviewSessionRegisterArgs;
import com.oracle.determinations.interview.engine.plugins.listprovider.ListProviderPlugin;
import com.oracle.determinations.interview.engine.screen.InputInterviewControl;
import com.oracle.determinations.interview.engine.screen.ListOption;

public class DerbyListProvider implements ListProviderPlugin {

              //REQUIRED by Plugin interface
              public DerbyListProvider()
              {

              }

              //REQUIRED by ListProviderPlugin interface
              public List getListOptions(InputInterviewControl controlInstance,
                                          InterviewSession session) {

                            //Setup connection to datasource

                            //Access datasource

                            //Loop through dataset
                                     //for each item, create a ListOption object
                                     //add ListOption object to the List object

                            //Return List object
              }
              //REQUIRED by Plugin interface
              public InterviewSessionPlugin getInstance(InterviewSessionRegisterArgs args) {
                       //Inspect args if needed to determine if this ListProvider should be used for the current InterviewSession
                       return null;
              }
}